#include<bits/stdc++.h>
using namespace std;
const int N=5e5+7;
int a[N],b[N],c[N],d[27][N],e[5],tmp1[N],tmp2[N],n,m,s,t,top1,top2,cnt,ans;
void Files(){
    freopen("arena.in","r",stdin);
    freopen("arena.out","w",stdout);
}
int main(){
    Files();
    scanf("%d%d",&n,&m);
    for(int i=1;i<=n;i++) scanf("%d",&b[i]);
    for(int i=1;i<=m;i++) scanf("%d",&c[i]);
    for(int i=20;i>=0;i--) if((1<<i)>=n) s=i;
    for(int i=1;i<=s;i++) for(int j=1;j<=(1<<s-i);j++) scanf("%d",&d[i][j]);
    scanf("%d",&t);
    while(t--){
        ans=0;
        for(int i=0;i<4;i++) scanf("%d",&e[i]);
        for(int i=1;i<=m;i++){
            for(int j=20;j>=0;j--) if((1<<j)>=c[i]) s=j;
            ans^=(i*((1<<s)-c[i]+1));
        }
        printf("%d\n",ans);
    }
    return 0;
}
